package com.sky.business.sys.param;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

@Data
public class SystemConfigParam {

    @Schema(description = "边缘中心IP")
    @NotBlank(message = "边缘中心IP不能为空")
    private String edgeIp;

    @Schema(description = "边缘中心名称")
    @NotBlank(message = "边缘中心名称不能为空")
    private String edgeName;

    @Schema(description = "移动任务下发topic")
    @NotBlank(message = "移动MQTT任务下发topic不能为空")
    private String cmccDispatcherTopic;

    @Schema(description = "移动心跳上报topic")
    @NotBlank(message = "移动MQTT心跳上报topic不能为空")
    private String cmccReportingTopic;

    @Schema(description = "移动MQTT服务地址")
    @NotBlank(message = "移动MQTT服务地址不能为空")
    private String cmccMQTTServiceHost;

    @Schema(description = "移动MQTT服务端口")
    @NotBlank(message = "移动MQTT服务端口不能为空")
    private String cmccMQTTServicePort;

    @Schema(description = "移动MQTT服务用户名")
    @NotBlank(message = "移动MQTT服务用户名不能为空")
    private String cmccMQTTServiceUsername;

    @Schema(description = "移动MQTT服务密码")
    @NotBlank(message = "移动MQTT服务密码不能为空")
    private String cmccMQTTServicePassword;

    @Schema(description = "移动MQTT服务连接ID")
    @NotBlank(message = "移动MQTT服务连接ID不能为空")
    private String cmccMQTTClientId;

    @NotBlank(message = "控制中心MQTT服务地址不能为空")
    @Schema(description = "控制中心MQTT服务地址")
    private String localMQTTServiceHost;

    @NotBlank(message = "控制中心MQTT服务端口不能为空")
    @Schema(description = "控制中心MQTT服务端口")
    private String localMQTTServicePort;

    @NotBlank(message = "控制中心MQTT服务用户名不能为空")
    @Schema(description = "控制中心MQTT服务用户名")
    private String localMQTTServiceUsername;

    @NotBlank(message = "控制中心MQTT服务密码不能为空")
    @Schema(description = "控制中心MQTT服务密码")
    private String localMQTTServicePassword;

    @NotBlank(message = "控制中心MQTT服务连接ID不能为空")
    @Schema(description = "控制中心MQTT服务连接ID")
    private String localMQTTClientId;

    @NotBlank(message = "控制中心MQTT服务心跳上报Topic不能为空")
    @Schema(description = "控制中心MQTT服务心跳上报Topic")
    private String localReportingTopic;

    @NotBlank(message = "控制中心服务请求地址不能为空")
    @Schema(description = "控制中心服务请求地址")
    private String controlServiceHost;

    @NotBlank(message = "控制中心服务请求端口不能为空")
    @Schema(description = "控制中心服务请求端口")
    private String controlServicePort;

    @NotBlank(message = "水平移动阈值不能为空")
    @Schema(description = "水平移动阈值", defaultValue = "96")
    private String horizontalMoveThreshold = "96";

    @NotBlank(message = "垂直移动阈值不能为空")
    @Schema(description = "垂直移动阈值", defaultValue = "72")
    private String verticalMoveThreshold = "72";

    @NotBlank(message = "无人机真实宽度不能为空")
    @Schema(description = "无人机真实宽", defaultValue = "0.183")
    private String objWidth = "0.183";

    @NotBlank(message = "无人机真实高度不能为空")
    @Schema(description = "无人机真实高", defaultValue = "0.08")
    private String objHeight = "0.08";

    @NotBlank(message = "无人机在画面中的比例不能为空")
    @Schema(description = "无人机在画面中的比例", defaultValue = "0.02")
    private String ratio = "0.02";

    @NotBlank(message = "设备最小变倍比例不能为空")
    @Schema(description = "设备最小变倍比例", defaultValue = "0.6")
    private String minZoomRatio = "0.6";

    @NotBlank(message = "设备最大变倍比例不能为空")
    @Schema(description = "设备最大变倍比例", defaultValue = "1.4")
    private String maxZoomRatio = "1.4";

    @NotBlank(message = "最小变倍距离不能为空")
    @Schema(description = "最小变倍距离", defaultValue = "40")
    private String minZoomDistance = "40";

    @NotBlank(message = "证书路径不能为空")
    @Schema(description = "证书路径")
    private String certificatePath;


}
